Use case: CRC accumulate ¶
This sequence diagram illustrates a CRC calculation by chunks.
Accumulation is required when the input data is not entirely accessible, allowing for processing data chunks as they become available.
Sequence diagram ¶
Code snippet ¶
|
HAL1 |
HAL2 |
|---|---|
HAL_CRC_Init(&hcrc);
uwCRCValue = HAL_CRC_Calculate(&hcrc,
(uint32_t *)&aDataBuffer,
BUFFER_SIZE);
uwCRCAccValue = HAL_CRC_Accumulate(&hcrc,
(uint32_t *)&aDataBuffer,
BUFFER_SIZE)
|
HAL_CRC_Init(&hCRC, HAL_CRC);
/* The HAL_CRC_SetConfig() is not required when the default
configuration is applied */
HAL_CRC_SetConfig(&hCRC, &crc_config);
HAL_CRC_Calculate(pCRC,
&DataBuffer,
sizeof(uint32_t) * BUFFER_SIZE,
&CrcValue);
HAL_CRC_Accumulate(pCRC,
&DataBuffer,
sizeof(uint32_t) * BUFFER_SIZE,
&CrcValue)
|
Key changes ¶
In HAL2, configuration through
HAL_CRC_SetConfig()is optional when the default configuration is applied.In HAL2,
HAL_CRC_Calculate()andHAL_CRC_Accumulate()can return additional statuses (for exampleHAL_INVALID_PARAMandHAL_BUSY).

